ICTSC9のバックボーン解説 – 無線LAN編
どうも無線LAN担当をしたnasuです。
コンテストやカンファレンスで提供する無線LANというのは本当に難しい、目に見えないのでまた難しい(まあLANケーブルに流れるパケットも目に見えませんが・・・)ものです。
家庭用みたいに置いてつなぐだけでは使えないし、クライアント数がいるからといってAPの数を増やせばいいわけではないし、会場によっては電波状況がーなど色々あり、有線とは全く違う知識が必要になってきます。
さて今回はシスコシステムズ合同会社様から以下の機材をお借りさせていただきました。
– AIR-CT2504-15(WLC) * 2台
– AIR-CAP3702E(AP) * 5台
テーマが冗長なんでもちろんWLCも冗長するよね(笑)と言われて今回はWLCまで2台で運用しました。
無線LANのいろは
さて無線LANのお話をするわけですが、知らない方も多いと思いますので提供した無線LANの話に関わる技術だけを抜粋して簡単に説明します。
無線LANについて詳しく知りたい方は以下のサイトなどを参考にしてください。
https://www.allied-telesis.co.jp/products/list/wireless/knowl.html
http://www.infraexpert.com/study/study11.html
2.4Ghzと5Ghzとは
- 2.4Ghzの特徴
- 壁や床などの障害物に強い
- チャンネル数が少ない(被らずに使えるチャンネル数は3個)
- bluetoothや電子レンジなどとチャンネルが被り干渉する
- 速度は遅め
- 5Ghzの特徴
- 壁や床などの障害物に弱い
- チャンネル数が多い(使えるチャンネル数は19個)
- 干渉するものは少ない
- 速度は早い
- DFSによるチャンネル変更がある
DFS(Dynamic Frequency Selection)とは
5Ghz帯は2.4Ghzと比べて干渉するものは少ないですが、既に使われているものがあります。
それは気象レーダーや軍事レーダーといったものです。
5Ghzで使えるチャンネル数は19個ありますが、レーダーがいるのはW53,W56と呼ばれる計15個のチャンネルです。なので確実に干渉されないのは4個のチャンネルしかありません。
無線LANはレーダーを妨害してはいけないため、レーダーがいたら自動的にチャンネルを切り替えるという機能の実装が義務付けられています。このチャンネルを変更する機能をDFS(Dynamic Frequency Selection)といいます。
チャンネル変更が起きるとユーザー側は接続が途切れ不安定になります。
会場について
今回会場を提供してくださったさくらインターネット様からは自社で使っているチャンネル以外で無線LANを提供してほしいという要望がありました。
したがってホットステージ序盤はさくらインターネット様が使っていないチャンネルでの運用をしていたわけですが、レーダーが地理に的に近くある為かDFSが頻繁に来てしまいました。
DFSの対策をするには以下があります
– W52というのレーダーが使われていないチャンネルで運用する
→W52は既にさくら様で使用しておりましたので、混線を避けるためにW52は使いませんでした。
- 会場付近でレーダーがいないチャンネルを探す
これはDFSを確認したらログを見て、DFSを受けたチャンネルの使用を設定からオフにしていき、会場付近でレーダーが使われていないチャンネルに絞っていく感じです。
ホットステージは約2週間あったのでその期間でDFSを受けたらオフにしていくを繰り返したら、ホットステージ後半ではDFSをあまり受けないチャンネルに絞れたと思います。
最終的に6個チャンネルで提供しました。
CiscoのWireless LAN Controller(以下WLC)とAccess Point(以下AP)について
WLC集中管理型について
さて無線LAN設計はまず大きく分けて2つあります。
– 分散管理型(自律型)
– 集中管理型
トラコンでは集中管理型を採用しています。
WLC1台に設定を入れるだけで、全てのAPの設定が変更でき管理がとても簡単です。
また集中管理型を採用していますが、通信パケットはWLCを経由させてはいません。
これはFlexConnectと呼ばれるものを使用しております。
FlexConnectを利用する利点はWLCに障害が起きてもダウンタイム無しで運用することが可能です。
RF Profile
APは設置する場所によって出力などを調整する必要があります。
例えば教室や部屋といった狭い場所に置くAPの場合は端末とAPの物理的な間が近いので早いデータ・レートが保証されます。
逆に今回の競技エリアのような広い場所に置くAPの場合は端末とAPが近い人もいれば遠い人もいるので遅いデータ・レートの端末もいます。
無線LANは同時に複数の端末が通信してるように見えますが、瞬間的には必ず1対1の通信が行われていて他の端末は待機状態になっています。
なのでデータ・レートが遅い端末が1台でもいると他の端末の待機時間が増えてしまい全体の端末の通信が遅くなる原因となります。
これを防ぐために遅いデータ・レートの端末は通信させないという設定を入れる必要がありますが、置く場所のAPによっては遅い端末もいるので設定の調整をする必要があります。
グローバルの設定に入れると全てのAPに設定が反映されてしまい個々のAPの設定ができなくなってしまうので、RF Profileという機能を使います。
狭い部屋に置く用データ・レートが早いものしか許可しないProfile、広い場所に置く用の遅いデータ・レートも許可するProfileといったものを用意してAP Groupに紐付けをします。
802.1X認証とRadiusサーバについて
さて今回参加者のみなさんはictsc9
というssidに繋いでもらいました。
全チーム同じssidなのにちゃんと自分のチームのネットワークにつながっているけどどうやってこれをやっているのだろう:thinking_face:と思う方がいたかもしれません。
まあ恐らくはidとpwを使ってるからこれで識別しているのだろうなと想像がついたと思います。
簡単にどんなことをしてるかというとAAA Override
という機能を利用してradiusサーバから返されるradius属性に基づいて、個々のチームのvlanを変えました。
つまりradiussサーバにこのユーザはこのvlanという情報を記載して、WLCが認証の際にユーザ情報を元に個々にvlanを分けています
Radiusサーバにはfreeradiusというパッケージを使用しました。
RadiusサーバにはRADIUS Access Accept
メッセージでWLCにVLAN情報を送信する機能があります。
VLAN情報を送信するには、Radiusポリシーに必要な3つのRadius属性を設定します。
(Radius属性についての詳細はRFC2868をお読みください)
- Tunnel-TypeはVLANの13を当てます
- Tunnel-Medium-Typeには802.1xの6を当てます
- Tunnel-Private-Group-Idにこのユーザに割り当てたいvlanを指定します
/etc/freeradius/users
team01 Cleartext-Password := "team01password"
Tunnel-Type = 13,
Tunnel-Medium-Type = 6,
Tunnel-Private-Group-Id = 割り当てたいvlanid
WLCの冗長について
今回のテーマが冗長化ということもありCisco様よりWLCを2台お借りし運用しておりました。ただ、今回Juniper様よりお借りしたSRXやQFXで構成した両方がアクティブの状態で動作する訳ではなく、それぞれPrimaryとSecondaryの状態で使用しました。この構成はPrimaryとなっているWLCが常にワイヤレスクライアントの認証等を行います。しかし、それがなんらかのトラブルで動作しなくなった時に、SecondaryとなっているWLCがアクティブに遷移して動作する特徴を持ちます。
簡単にどんな設定をしたかを以下に箇条書きでまとめます。
- WLCのMobility Groupを同じにする
- お互いのIPアドレスとMACアドレスを登録
- 使用する全てのAPにSecondary WLCを設定
- Primaryのダウン検知を1秒に変更
具体的に説明し始めるとものすごく長くなってしまうので冗長化の設定をするときに参考になったサイトのURLを記載しますのでご確認ください。
Cisco Wireless LAN – High Availability
http://www.infraexpert.com/study/wireless41.html
まとめ
Radius認証の周知が不足していて、一部端末が繋がらないというトラブルがあり申し訳ありません。
競技中の運用は基本的に安定した通信が出来ていたと思いますが、突発的に通信が良い悪いなどがありトラブルシュートに大変でした。
2.4Ghzは不安定な要素が多いので提供をやめてしまいたいというのがありましたが、古い端末で2.4Ghzしか対応してないものなどがあるので提供しました。
このような場だと5Ghzに対応してない端末はほぼいない、居ても有線LANでの対応ができるので安定を求めるのであれば2.4Ghzはやめたほうがいいかもしれません。